By: Vedika Ahuja
For the majority of the 20th century, financial institutions denied communities of color, especially Black communities, affordable home loans through a practice called redlining. The Federal government sanctioned and supported this systematic denial of home mortgages starting in the 1930s, when it created the Home Owners Loan Corporation (HOLC) to insure private mortgages. The HOLC created maps of major American cities to document the stability and the risks associated with lending by neighborhood.
Loan officers, appraisers and real estate professionals used the HOLC maps to decide where to provide loans and the terms of the loans. The HOLC maps documented Chicago neighborhoods in great detail, labeling each neighborhood on a riskiness scale from “A”, “best”, to “D”, “hazardous”, and providing a qualitative description of each neighborhood. The grading and descriptions are based largely on the racial and ethnic make-up, changing demographics, and housing conditions and access to public facilities in each neighborhood. Neighborhoods with high percentages of people of color, especially black folks, were coined hazardous, regardless of other factors.
These HOLC maps in Chicago not only provided guidance to real estate professionals, but also reflected how various industries essentially isolated Black communities in areas with lower investments than their white counterparts. The systematic disinvestment in communities of color in Chicago prevented them from building wealth through homeownership and accessing products and services to thrive.
The broad practice of redlining shaped how Chicago formed, robbing Black and Brown communities of the opportunity to build intergenerational wealth through homeownership. It’s legacy lives on, though not exactly how we would expect. Formerly redlined communities have changed considerably in Chicago, in ways that are important to understand when creating policies to address the racial wealth gap today. Democratic presidential candidates Elizabeth Warren and Pete Buttigieg have plans to address the impacts of redlining, and both offer benefits to residents currently living in formerly redlined areas. In Chicago, these plans could miss the people most impacted by redlining practices.
Redlined Communities in 1940 and Lending Patterns Today
There’s a popular adage in the advocacy and data viz communities in Chicago - “All maps of the city look the same.” The saying unfortunately refers to the fact that many socioeconomic indicators related to poverty, crime, and police misconduct are clustered in the South and West parts of Chicago, where Black and Brown communities live today. However, the HOLC map of Chicago created in 1940 looks quite different.
#clean redlining data
chi_1940 = get_gpd_df("data/raw/ILChicago1940.geojson")
chi_1940["holc_grade_n"] = np.where(chi_1940["holc_grade"] == "A", 1,
np.where(chi_1940["holc_grade"] == "B", 2,
np.where(chi_1940["holc_grade"] == "C", 3,
4)))
#merge redlining data with census data
census_to_counts_map['point_centroid'] = census_to_counts_map['geometry'].centroid
census_centroids = census_to_counts_map.drop(columns="geometry", axis=1).rename({"point_centroid" : "geometry"}, axis=1)
census_w_holc = gpd.sjoin(census_centroids, chi_1940, how="left", op='intersects')
census_w_holc["holc_grade_n"] = census_w_holc["holc_grade_n"].fillna(value=0)
census_w_holc["holc_grade"] = np.where(census_w_holc["holc_grade_n"] == 0, "NA", census_w_holc["holc_grade"])
census_w_holc["loans_2017"] = census_w_holc["loans_2017"].fillna(value=0)
#find maximum latitude of income map
census_to_counts_map["geometry"].total_bounds
chi_1940['latitude_centroids'] = chi_1940["geometry"].centroid.y
chi_1940_map = chi_1940[chi_1940['latitude_centroids'] < 42.023924]
chi_1940_map = chi_1940_map[chi_1940_map['latitude_centroids'] > 41.644286]
chi_1940_map.loc[chi_1940_map['holc_grade'] == "A", 'holc_grade'] = "A: Most Desirable"
chi_1940_map.loc[chi_1940_map['holc_grade'] == "B", 'holc_grade'] = "B: Still Desirable"
chi_1940_map.loc[chi_1940_map['holc_grade'] == "C", 'holc_grade'] = "C: Declining"
chi_1940_map.loc[chi_1940_map['holc_grade'] == "D", 'holc_grade'] = "D: Hazardous"
redline_map_json = json.loads(chi_1940_map.to_json())
redline_data = alt.Data(values=redline_map_json['features'])
census_base = alt.Chart(count_data).mark_geoshape(
fill = 'lightgray',
stroke='lightgray',
strokeWidth=1
).encode(
)
redlining_chloro = alt.Chart(redline_data).mark_geoshape(opacity=.9
).encode(
alt.Color('properties.holc_grade',
type='ordinal',
scale=alt.Scale(scheme="yelloworangered"),
legend =alt.Legend(title = "HOLC Grade"))).properties(
title={"text":["HOLC Grades in 1940 Chicago"], "fontSize" : 12},
height = 500,
width = 500)
redlining_map = census_base + redlining_chloro
loan_chloro = alt.Chart(count_data).mark_geoshape(
).encode(
alt.Color('properties.loans_per_100_ppl_2017',
type='quantitative',
scale=alt.Scale(scheme="tealblues"),
legend =alt.Legend(title = "Loans per 100 people", clipHeight=4))).properties(
title= {"text":["Loans Per 100 People in 2017"], "fontSize" : 12},
height = 500, width = 500)
alt.hconcat(redlining_map, loan_chloro).properties(
title={"text" : "Lending Patterns have Changed Tremendously over the Last 80 years",
'subtitle' : ["Many areas redlined in the past are now growing at the fastest rates in Chicago", "Source: HMDA 2017 Data"],
'subtitleFont': 'Gotham',
'subtitleFontSize' : 14}).configure_legend(
#strokeColor='gray',
#fillColor='#EEEEEE',
padding=6,
cornerRadius=10,
orient='bottom',
columns = 0
)
## I want this map to look like the actual HOLC map!
# There are a number of ways I could show this first map
# fix the legends
# put the maps closer to each other
# make the redlining map more transparent